<PageHeader as |p|>
  <p.top>
    <KeyValueHeader @baseKey={{hash display=model.id id=model.idForNav}} @path="vault.cluster.secrets.backend.list" @mode={{mode}} @root={{root}} @showCurrent={{true}} />
  </p.top>
  <p.levelLeft>
    <h1 class="title is-3" data-test-secret-header="true">
      {{#if (eq mode "create") }}
        Create Role
      {{else if (eq mode "edit")}}
        Edit Role
      {{else}}
        Role <code>{{model.id}}</code>
      {{/if}}
    </h1>
  </p.levelLeft>
</PageHeader>

{{#if (eq mode "show")}}
  <Toolbar>
    <ToolbarActions>
      {{#if capabilities.canDelete}}
        <ConfirmAction
          @buttonClasses="toolbar-link"
          @onConfirmAction={{action "delete"}}
          @confirmTitle="Are you sure?"
          @confirmMessage="Deleting this role means that you’ll need to recreate it and reassign any existing transformations to use it again."
          @confirmButtonText="Delete"
          data-test-transformation-role-delete
        >
          Delete role
        </ConfirmAction>
      {{/if}}
      {{#if capabilities.canUpdate }}
        <ToolbarSecretLink
          @secret={{concat model.idPrefix model.id}}
          @mode="edit"
          @data-test-edit-link=true
          @replace=true
        >
          Edit role
        </ToolbarSecretLink>
      {{/if}}
    </ToolbarActions>
  </Toolbar>
{{/if}}

{{#if (or (eq mode 'edit') (eq mode 'create'))}}
<form onsubmit={{action "createOrUpdate" mode}}>
  <div class="box is-sideless is-fullwidth is-marginless">
    <MessageError @model={{model}} />
    <NamespaceReminder @mode={{mode}} @noun="Transform role" />
    {{#each model.attrs as |attr|}}
      <FormField
        data-test-field
        @attr={{attr}}
        @model={{model}}
      />
    {{/each}}
  </div>
  <div class="field is-grouped-split box is-fullwidth is-bottomless">
    <div class="control">
      <button
        type="submit"
        disabled={{buttonDisabled}}
        class="button is-primary"
        data-test-role-transform-create=true
      >
        {{#if (eq mode 'create')}}
          Create role
        {{else if (eq mode 'edit')}}
          Save
        {{/if}}
      </button>
      <SecretLink @mode={{if (eq mode "create") "list" "show"}} @class="button" @secret={{concat "role/" model.id}}>
        Cancel
      </SecretLink>
    </div>
  </div>
</form>
{{else}}
<div class="box is-fullwidth is-sideless is-paddingless is-marginless">
  {{#each model.attrs as |attr|}}
    {{#if (eq attr.type "object")}}
      <InfoTableRow @label={{capitalize (or attr.options.label (humanize (dasherize attr.name)))}} @value={{stringify (get model attr.name)}} />
    {{else if (eq attr.type "array")}}
      <InfoTableRow @label={{capitalize (or attr.options.label (humanize (dasherize attr.name)))}} @value={{get model attr.name}} @type={{attr.type}} @isLink={{eq attr.name "transformations"}} @viewAll="transformations" />
    {{else}}
      <InfoTableRow @label={{capitalize (or attr.options.label (humanize (dasherize attr.name)))}} @value={{get model attr.name}} />
    {{/if}}
  {{/each}}
</div>
{{/if}}
